Conventionally, high-resolution color images are in high demand, and digital multifunction peripherals deal with more and more images with resolutions of 1200 dpi or higher in order to meet the needs for high image quality. Not just digital multifunction peripherals, but image processing apparatuses such as digital cameras and facsimile machines also perform compression of color image data in order to save memory/hard disk capacity and to shorten the write time thereto, thereby achieving low cost and high speed.
Commonly used examples of color still image compression methods include JPEG methods using discrete cosine transform and other methods using Wavelet conversion. This sort of encoding scheme typically encodes an image into predetermined blocks (e.g., in units of 8×8 or 16×16 pixels) and performs discrete cosine transform, quantization, and entropy encoding to achieve high compression efficiency. The encoding scheme of this kind is a variable-length encoding method, in which the amount of encoding varies with each image to be encoded.
Because of the use of such a block-by-block variable-length encoding method, it is difficult to have random access to small areas for reference. Since the amount of encoding varies with each image and accordingly a block to be decoded has an indeterminate location (memory address), some means for determining the block location and block-by-block decoding processing are necessary for random access.
The discrete cosine transform in JPEG usually necessitates 8×8 pixels for the block size. In order to perform discrete cosine transform processing on the block-by-block basis at high speed, a high-speed computing unit and its dedicated hardware are necessary, and a buffer memory is also necessary.
As one approach to the issues such as random accessibility and the complexity of processing, an image compression technique is disclosed, in which the block size is small and a fixed compression rate is used (e.g., Japanese Patent Laid-Open No. 2004-104621).
There is also another issue in that, as the resolution continues to increase as described above, the number of pixels that require image processing increases dramatically, which increases the processing load. For example, if the resolution is doubled from 600 dpi to 1200 dpi, the number of pixels to be processed is quadrupled. In the case of using the image compression described above, processing for decoding compressed data would be necessary in order to refer to such pixel data and convert it. In other words, compressed data cannot be subjected as is to image processing and it always requires decoding processing, which makes it necessary to perform pixel-by-pixel processing on all pixels in high-resolution data and thus causes an increase in the processing time.
Examples of disclosed techniques for performing compression processing without encoding pixel data include a well-known run-length compression method for storing pixel data and the number of consecutive pixels, and a technique for performing compression by detecting edges in blocks and storing two colors at the edges (e.g., Japanese Patent Laid-Open No. 10-257488).
As described above, with the JPEG method using discrete cosine transform and the Wavelet conversion method, there is a problem in that a large amount of computations and accordingly a long processing time are necessary for each block, and also, costly processing hardware is needed.
There is also another problem in that an enormous amount of processing time is required depending on the number of pixels to be processed since image processing performed on compressed data always requires decoding processing.
For example, although high-resolution data is not always necessary depending on the application of image data, it is necessary to reduce high-resolution data to low-resolution data in order to obtain low-resolution data. In other words, decoding processing and separate reduction processing are always necessary in order to generate low-resolution data from high-resolution data that has been compressed and encoded in JPEG format, for example.